package com.ysf.cn.mainshi.test;

import com.ysf.cn.mainshi.pojo.HelloService;
import org.springframework.cglib.core.DebuggingClassWriter;
import org.springframework.cglib.proxy.Enhancer;

/**
 * @author ysf
 * @date 2020/2/23 14:52
 */
public class Clients {

    /**
     * cglib方式的动态代理
     * @param args
     */
    public static void main(String[] args) {
        //代理类class文件存入本地磁盘方便反编译查看
        //System.setProperty(DebuggingClassWriter.DEBUG_LOCATION_PROPERTY,"D:\\code");
        //通过CGLIB动态代理获取代理对象的过程
        Enhancer enhancer=new Enhancer();
        //设置enhancer对象的父类
        enhancer.setSuperclass(HelloService.class);
        //设置enhancer回调的对象
        enhancer.setCallback(new MyMethodInterceptor());
        //创建代理对象
        HelloService proxy=(HelloService) enhancer.create();
        //通过代理对象调用目标方法
        proxy.sayHello();
        proxy.sayOthers("张三");
//        System.out.println("=========================");
//        HelloService helloService=new HelloService();
//        helloService.sayHello();

    }


}
